package com.shop.shopmall.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.shop.shopmall.dto.LoginDto;
import com.shop.shopmall.pojo.Menu;
import com.shop.shopmall.pojo.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.shop.shopmall.vo.Result;
import jakarta.servlet.http.HttpServletRequest;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;

/**
* @author jamie
* @description 针对表【user】的数据库操作Service
* @createDate 2025-03-20 11:51:32
*/
public interface UserService extends IService<User> {

    /**
     * 登录功能
     * @param loginDto 登录参数
     * @return 生成的JWT的token
     */
    Result<?> login(LoginDto loginDto);

    /**
     * 根据用户id获取菜单
     * @param id
     * @return
     */
    List<Menu> getMenuByUserId(int id);

    /**
     * 分页获取用户信息
     * @param user
     * @param pageSize
     * @param pageNum
     * @return
     */
    IPage<User> getUsers(User user, Integer pageSize, Integer pageNum);

    /**
     * 更新用户状态
     * @param id
     * @param status
     * @return
     */
    int updateStatus(int id, int status);

    /**
     * 更新用户密码
     * @param id
     * @param password
     * @return
     */
    int updatePass(@Param("id") int id, @Param("password") String password);

}
